var App = function() {

	return {
		/** date-box 格式化日期 */
		formatDate : function(date) {
			return date.getFullYear() + "-" + (date.getMonth() + 1) + "-"
					+ date.getDate();
		},

		formatDateTime : function(date) {
			return date.getFullYear() + "-" + (date.getMonth() + 1) + "-"
					+ date.getDate() + " " + date.getHours() + ":"
					+ date.getMinutes() + ":" + date.getSeconds();
		},

		/** GridView 格式化Bool列 */
		formatBool : function(value, row, index) {
			if (value == 1) {
				return "是";
			} else if (value == 0) {
				return "否";
			}
			return value;
		},

		/** 判断字符串是否为null或空字符串 */
		isBlank : function(data) {
			return data == null || data == '';
		},

		/** 打开标签页 */
		openTab : function(title, url) {
			if ($('#tabs').tabs('exists', title)) {
				$("#tabs").tabs('select', title);
			} else {
				// 右键关闭会传过来null
				if (url == null) {
					return;
				}
				var content = '<iframe style="width:100%;height:100%;" scrolling="auto" frameborder="0" src="/iframeMenu?url='
						+ url + '"></iframe>';
				$("#tabs").tabs('add', {
					title : title,
					content : content,
					closable : true
				});
			}
		},

		/** 初始化省市级联控件 */
		initAddress : function() {
			if ($('#combobox-province') == null) {
				return;
			}

			$('#combobox-province').combobox(
					{
						onShowPanel : function() {
							$('#combobox-province').combobox('reload',
									'/pub/area?level=0');
						}
					});

			$('#combobox-city').combobox(
					{
						onShowPanel : function() {
							var province = $('#combobox-province').combobox(
									'getValue');
							if (App.isBlank(province)) {
								$('#combobox-city').combobox('hidePanel');
								$.messager.alert('消息', '请选择省份', 'warning');
							} else {
								$('#combobox-city').combobox('reload',
										'/pub/area?pCode=' + province);
							}
						}
					});

			$('#combobox-area')
					.combobox(
							{
								onShowPanel : function() {
									var city = $('#combobox-city').combobox(
											'getValue');
									if (App.isBlank(city)) {
										$('#combobox-area').combobox(
												'hidePanel');
										$.messager.alert('消息', '请选择城市',
												'warning');
									} else {
										$('#combobox-area').combobox('reload',
												'/pub/area?pCode=' + city);
									}
								}
							});
		},

		/** 关闭新增/修改窗口 */
		closeAddDialog : function() {
			$('#add-dialog').dialog('close');
			$('#add-form').form('clear');
		},

		/** 关闭新增/修改窗口 */
		closeDialog : function(dialog, form) {
			$('#' + dialog).dialog('close');
			$('#' + form).form('clear');
		},
		
		/**
		 * 将form封装成DataGrid的查询参数
		 * @formId 表单Id
		 */
		dataGridQueryParams : function(formId) {
			var params = new Object();
			$.each($('#' + formId).serializeArray(), function(i, item) {
				params[item.name] = item.value;
			});
			return params;
		},
		
		/**
		 * 在页面中任何嵌套层次的窗口中获取顶层窗口
		 * 
		 * @return 当前页面的顶层窗口对象
		 */
		getTopWinow : function() {
			var p = window;
			while (p != p.parent) {
				p = p.parent;
			}
			return p;
		},
		
		/**
		 * 单选按钮组默认选中
		 * @param name 按钮组名称
		 * @param selectValue 选中项的值
		 */
		selectRadio : function(name, selectValue) {
			$('[name="' + name + '"]:radio').each(function() {
				if (this.value == selectValue) {
					this.checked = "checked";
				}
			});
		}
	}

}();

/** 确认密码验证 */
$.extend($.fn.validatebox.defaults.rules, {
	equals : {
		validator : function(value, param) {
			return value == $(param[0]).val();
		},
		message : '两次密码输入应相同'
	}
});

$.ajaxSetup({
	complete : function(XMLHttpRequest, textStatus) {
		// 通过XMLHttpRequest取得响应头,sessionstatus
		var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus");
		if (sessionstatus == 'timeout') {
			// 如果超时就处理 ，指定要跳转的页面
			var top = getTopWinow(); // 获取当前页面的顶层窗口对象
			top.location.href = path + "/login"; // 跳转到登陆页面
		} else if (sessionstatus == 'authorizationFailure') {
			// 没有操作权限
			$.messager.alert('错误', '没有操作权限');
			return false;
		}
	}
});